package br.com.beautycenter.bean;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
@Table(name="VENDA")
public class Venda implements Serializable {
    
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="ID_VENDA")
    private int idVenda;
    
    @Column(name="DT_VENDA")
    @Temporal(TemporalType.DATE)
    private Date dtVenda;
    
    @Column(name="VALOR_TOTAL_BRUTO",  precision = 4,scale=2)
    private double valorTotalBruto;
    
    @Column(name="VALOR_TOTAL_LIQUIDO", precision = 4, scale=2)
    private double valorTotaLiquido;
       
    @Column(name="DESCPORCENTAGEM")
    private double descPorcentagem;
    
    @Column(name="DESCDINHEIRO", precision = 4, scale=2)
    private double descDinheiro;
    
    @OneToMany(mappedBy = "venda", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
    private List<Prestacao> listaPrestacoes;
    
    @OneToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_CLIENTE")
    private Cliente cliente;

    
    public int getIdVenda() {
        return idVenda;
    }

    public void setIdVenda(int idVenda) {
        this.idVenda = idVenda;
    }

    public Date getDtVenda() {
        return dtVenda;
    }

    public void setDtVenda(Date dtVenda) {
        this.dtVenda = dtVenda;
    }

    public double getValorTotalBruto() {
        return valorTotalBruto;
    }

    public void setValorTotalBruto(double valorTotalBruto) {
        this.valorTotalBruto = valorTotalBruto;
    }

    /**
     * @return the descPorcentagem
     */
    public double getDescPorcentagem() {
        return descPorcentagem;
    }

    /**
     * @param descPorcentagem the descPorcentagem to set
     */
    public void setDescPorcentagem(double descPorcentagem) {
        this.descPorcentagem = descPorcentagem;
    }

    /**
     * @return the descDinheiro
     */
    public double getDescDinheiro() {
        return descDinheiro;
    }

    /**
     * @param descDinheiro the descDinheiro to set
     */
    public void setDescDinheiro(double descDinheiro) {
        this.descDinheiro = descDinheiro;
    }

    /**
     * @return the valorTotaLiquido
     */
    public double getValorTotaLiquido() {
        return valorTotaLiquido;
    }

    /**
     * @param valorTotaLiquido the valorTotaLiquido to set
     */
    public void setValorTotaLiquido(double valorTotaLiquido) {
        this.valorTotaLiquido = valorTotaLiquido;
    }

    public List<Prestacao> getListaPrestacoes() {
        return listaPrestacoes;
    }

    public void setListaPrestacoes(List<Prestacao> listaPrestacoes) {
        this.listaPrestacoes = listaPrestacoes;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }
          
}